package com.csnf.servlet;

import com.csnf.dao.BookDao;
import com.csnf.entity.Books;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * 处理与书籍相关的 HTTP 请求的 Servlet。
 */
@WebServlet("/BookServlet")
public class BookServlet extends HttpServlet {
    /**
     * 书籍数据访问对象实例。
     */
    private BookDao bookDao = new BookDao();

    /**
     * 处理 GET 请求的方法。
     *
     * @param req  HTTP 请求对象
     * @param resp HTTP 响应对象
     * @throws ServletException 如果发生 Servlet 异常
     * @throws IOException      如果发生 I/O 异常
     */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 获取请求参数 "bookName"
        String bookName = req.getParameter("bookName");
        try {
            // 通过书名查询书籍列表
            List<Books> bookList = bookDao.getBooksByName(bookName);
            // 将书籍列表设置到请求属性中
            req.setAttribute("bookList", bookList);
        } catch (Exception e) {
            // 打印堆栈跟踪以调试
            e.printStackTrace();
        }
        // 转发到 bookList.jsp 页面显示书籍列表
        req.getRequestDispatcher("bookList.jsp").forward(req, resp);
    }
}
